/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package concesionaria;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 *
 * @author Guillermo
 */
public class VentanaInscClientePlan extends JFrame implements ItemListener,  ActionListener {

   
   JButton bu1,bu2;
   JComboBox empleados=new JComboBox();
   JComboBox clientes=new JComboBox();
   JComboBox auto=new JComboBox();
   
   JComboBox plan=new JComboBox();  
   JLabel p =new JLabel("Selecione Plan");
   String pla[] = new String[40]; 
   String plaid[]= new String[40];
   JLabel e =new JLabel("Seleccione Empleado");
   JLabel c =new JLabel("Seleccione Cliente");
   JLabel a =new JLabel("Seleccione Auto");
   
   
   String emp[] = new String[40];
  
   String cli[] = new String[40];
   String cliid[] = new String[40];
   
   String aut[] = new String[40];
   String autid[]= new String[40];
   
   String elecciones[]= new String[5];
   
   
    public VentanaInscClientePlan()
    {
     //1 llamar al super 2.configurar titulo manda parametro al constructor   
     super("Inscribir Cliente a Plan"); 
     //3 configurar parametro
     setSize(200,400);
     //pack();
     //4 definir cierre
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    
     FlowLayout dls= new FlowLayout();
     setLayout(dls);
     //5 set visibilidad
     setVisible(true); 
     bu1= new JButton("Cancelar");
     bu2= new JButton("Inscribir");
     bu1.setActionCommand("cancelar");
     bu2.setActionCommand("inscribir");
     
     
     ResultSet rs = null;
     int i=0;
            //SQL query command
            try{
                
            String SQL = "SELECT * FROM persona WHERE tipo LIKE 'emp'";
            
            
            Statement stmt;
            stmt = Concesionaria.cn.createStatement();
            rs = stmt.executeQuery(SQL);
            while (rs.next()) {
               
               // JOptionPane.showMessageDialog(null,rs.getString("ID"));       
                      
                    
                  emp[i]=new String(rs.getString("numero")+" : "+rs.getString("nombre")+" "+rs.getString("apellido"));
                   //JOptionPane.showMessageDialog(null,s[i]);
                        i++;
                        
                        
                           }
           }  catch(SQLException e)
           {
            JOptionPane.showMessageDialog(null,"Error en SQL: "+e.getMessage());
            
           }
     
     empleados.addItem(" ");
     for(int j=0;j<i;j++)
        empleados.addItem(emp[j]); 
     add(e);
     
     empleados.addItemListener(this);
     add(empleados);
     
     
    
     
     setVisible(true); 
   /*   
     add(cursos);
     add(puto);
     cursos.setEditable(false); //para que en las opciones se pueda escribir cualquier cosa
     
 */
     
     
     
     
     i=0;
     try{
                
            String SQL = "SELECT * FROM persona WHERE tipo LIKE 'cli'";
            
            
            Statement stmt;
            stmt = Concesionaria.cn.createStatement();
            rs = stmt.executeQuery(SQL);
            while (rs.next()) {
               
               // JOptionPane.showMessageDialog(null,rs.getString("ID"));       
                      
                    
                  cli[i]=rs.getString("numero")+" : "+rs.getString("nombre")+" "+rs.getString("apellido");
                  cliid[i]= rs.getString("ID");
                  //JOptionPane.showMessageDialog(null,s[i]);
                        i++;
                        
                        
                           }
           }  catch(SQLException e)
           {
            JOptionPane.showMessageDialog(null,"Error en SQL: "+e.getMessage());
            
           }

     clientes.addItem(" ");
     for(int j=0;j<i;j++)
     clientes.addItem(cli[j]);
     add(c);
     
     clientes.addItemListener(this);
     add(clientes);
     
     
    
     
     setVisible(true);
     
     
     
     i=0;
     try{
                
            String SQL = "SELECT * FROM auto";
            
            
            Statement stmt;
            stmt = Concesionaria.cn.createStatement();
            rs = stmt.executeQuery(SQL);
            while (rs.next()) {
               
               // JOptionPane.showMessageDialog(null,rs.getString("ID"));       
                      
                  autid[i]= rs.getString("ID"); 
                  aut[i]=rs.getString("marca")+" : "+rs.getString("modelo");
                   //JOptionPane.showMessageDialog(null,s[i]);
                        i++;
                        
                        
                           }
           }  catch(SQLException e4)
           {
            JOptionPane.showMessageDialog(null,"Error en SQL: "+e4.getMessage());
            
           }

     auto.addItem(" ");
     for(int j=0;j<i;j++)
     auto.addItem(aut[j]);
    // clientes.addItem(s[1]);
     /*auto.addItem(aut[1]);
     auto.addItem(aut[2]);
      auto.addItem(aut[3]);
     auto.addItem(aut[4]);
     */add(a);
     
     auto.addItemListener(this);
     add(auto);
     
     
    
     
     setVisible(true);
     
     
     
     
     
     
     i=0;
     try{
                
            String SQL = "SELECT * FROM plan";
            
            
            Statement stmt;
            stmt = Concesionaria.cn.createStatement();
            rs = stmt.executeQuery(SQL);
            while (rs.next()) {
               
               // JOptionPane.showMessageDialog(null,rs.getString("ID"));       
                      
                    
                  pla[i]=new String(rs.getString("nombre"));
                   //JOptionPane.showMessageDialog(null,s[i]);
                        i++;
                        
                        
                           }
           }  catch(SQLException e)
           {
            JOptionPane.showMessageDialog(null,"Error en SQL: "+e.getMessage());
            
           }

     
     
    plan.addItem(" ");
     add(p);
     
     plan.addItemListener(this);
     add(plan);
     
     
     
   bu1.addActionListener(this);
     add(bu1);
     bu2.addActionListener(this);
     add(bu2);
     
     
     
     
     
     
     
     
    }
    
    public void itemStateChanged(ItemEvent event)
    {
      int control=0; 
      
      Object i=event.getSource();
      
      if(i==clientes)
      {
      int eleccion= clientes.getSelectedIndex()-1;
      if(eleccion <0)
      {
          elecciones[1]="0";
      }
      else
      {          
        elecciones[1]=cli[eleccion];
      }
      //c.setText(cli[eleccion]);
      }      
      if(i==empleados)
      {
      int eleccion= empleados.getSelectedIndex()-1;
      //c.setText(cli[eleccion]);
          if(eleccion < 0 )
          {
            elecciones[0]="0";
          }
          else
          {          
            elecciones[0]=emp[eleccion];
          }
      }
      
     
      if(i==auto)
      {
       int eleccion= auto.getSelectedIndex()-1; 
          
         
       
      //JOptionPane.showMessageDialog(null,s.charAt(0));  
      //int eleccion= auto.getSelectedIndex();
      
      //String pla2[] = new String[40]; 
      if(eleccion < 0)
      {
          
     plan.removeAllItems();
     plan.addItem(" ");
     setVisible(true);
     add(p);
     
     plan.addItemListener(this);
     add(plan);
     control=1;
     bu1.removeAll();
     bu2.removeAll();
     add(bu1);
     add(bu2);
     elecciones[2]="0";
      }
      else
      {
       String s=aut[eleccion];
       
        elecciones[2]=aut[eleccion];
       int aux=0;
     try{
                
            String SQL = "SELECT plan.ID, plan.nombre FROM aut_plan, plan WHERE plan.ID=aut_plan.ID_plan AND aut_plan.ID_auto = "+autid[auto.getSelectedIndex()-1];
            
            
            Statement stmt;
            stmt = Concesionaria.cn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()) {
               
               
                     //JOptionPane.showMessageDialog(null,s[i]);
                 pla[aux]=rs.getString("plan.nombre");
                 plaid[aux]=rs.getString("ID");
                 //JOptionPane.showMessageDialog(null,pla2[aux]);
                 aux++;   
                        
                        
             }
           }  catch(SQLException e)
           {
            JOptionPane.showMessageDialog(null,"Error en SQL2: "+e.getMessage());
            
           }

     plan.removeAllItems();
     plan.addItem(" ");
     for(int j=0;j<aux;j++)
     plan.addItem(pla[j]);
     setVisible(true);
     add(p);
     
     plan.addItemListener(this);
     add(plan);
     control=1;
     bu1.removeAll();
     bu2.removeAll();
     add(bu1);
     add(bu2);
      }
      
      
      }

      if(i==plan)
      {
          
       int eleccion= plan.getSelectedIndex()-1; 
          
          if(eleccion < 0)
          {
            
            elecciones[3]="0";
          }
          else
          { 
              elecciones[3]=pla[eleccion];
          }
      }
     
      
      
      
      
    }
    @Override
    public void actionPerformed(ActionEvent e)
    {
        
    int error=0;
     Object fuente= e.getActionCommand();
     if(fuente == "cancelar")
        {  
         //JOptionPane.showMessageDialog(null,"chau");   
         this.setVisible(false);
        } 
     if(fuente=="inscribir")
     {
         for(int i =0;i<4;i++)
         {
             if("0".equals(elecciones[i]) || elecciones[i]==null)
             {
                 JOptionPane.showMessageDialog(null, "No ha completado con todos los campos", "verifique los datos",2);
                 error=1;
                 i=4;
                        
             }
         }
         if(error==0)
         {
             int resultado=JOptionPane.showConfirmDialog(null,"Confirmar inscrpcion\n"+elecciones[0]+"\n"+elecciones[1]+"\n"+elecciones[2]+"\n"+elecciones[3],null,JOptionPane.YES_NO_OPTION);
             if(resultado==0)
             {
                try{

                    String SQL = "select count(*) from inscripcion where ID_cli= "+  cliid[clientes.getSelectedIndex()-1]+" AND ID_plan = "+ plaid[plan.getSelectedIndex()-1]+ " AND ID_auto= "+autid[auto.getSelectedIndex()-1];
                    Statement stmt;
                    stmt = Concesionaria.cn.createStatement();
                    ResultSet rs = stmt.executeQuery(SQL);
                    while (rs.next()) {
                         if("1".equals(rs.getString(1)))
                         {
                             error=1;
                             JOptionPane.showMessageDialog(null,"El cliente que desea inscribir ya se encuentra inscipto");
                         }
                             
                    }
                    
                    //INSERT INTO concesionaria.inscripcion (`ID_cli`, `ID_plan`, `ID_auto`, fecha) VALUES (2, 1, 1, '2011-10-05')
               }  
               catch(SQLException e1)
               {
                JOptionPane.showMessageDialog(null,"Error en SQL2: "+e1.getMessage());

               }
               if(error==0)
               {
                   try{
                    java.util.Date fechaActual= new java.util.Date();
                    SimpleDateFormat formato =new SimpleDateFormat("yyyy'-'MM'-'dd");
                    String cadenaFecha = formato.format(fechaActual);
                    String SQL = "INSERT INTO concesionaria.inscripcion (`ID_cli`, `ID_plan`, `ID_auto`, fecha) VALUES ("+  cliid[clientes.getSelectedIndex()-1]+" ,"+ plaid[plan.getSelectedIndex()-1]+ ","+autid[auto.getSelectedIndex()-1]+",'"+cadenaFecha+"')";
                    Statement stmt;
                    stmt = Concesionaria.cn.createStatement();
                    stmt.executeUpdate(SQL);
                    
                    
                    //INSERT INTO concesionaria.inscripcion (`ID_cli`, `ID_plan`, `ID_auto`, fecha) VALUES (2, 1, 1, '2011-10-05')
                   }  
                   catch(SQLException e1)
                   {
                    JOptionPane.showMessageDialog(null,"Error en SQL2: "+e1.getMessage());

                   }
                   JOptionPane.showMessageDialog(null,"La inscripcion ha sido realizada con exito");
                   this.setVisible(false);
               }
             }
                
         }
         
     
      
        
    }
    
    }
    
  
    
    

    
    
    
}
    
    

